package org.dromara.exam.service;

import org.dromara.exam.domain.bo.ExamAnswerBo;
import org.dromara.exam.domain.bo.ExamProjectBo;
import org.dromara.exam.domain.vo.ExamProjectVo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.exam.domain.vo.PublicPaperVo;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Collection;
import java.util.List;

/**
 * 项目Service接口
 *
 * @author xiyin321
 * @date 2024-05-17
 */
public interface IExamProjectService {

    /**
     * 查询项目
     */
    ExamProjectVo queryById(Long id);

    /**
     * 查询项目分页
     */
    TableDataInfo<ExamProjectVo> queryPage(ExamProjectBo bo, PageQuery pageQuery);

    /**
     * 根据当前用户ID查询答卷关联的项目分页列表
     * @param userId
     * @return
     */
    TableDataInfo<ExamProjectVo> queryProjectsPageByUserId(ExamProjectBo bo, PageQuery pageQuery);
    /**
     * 查询项目列表
     */
    List<ExamProjectVo> queryList(ExamProjectBo bo);

    /**
     * 新增项目
     */
    ExamProjectVo insertByBo(ExamProjectBo bo);

    /**
     * 修改项目
     */
    Boolean updateByBo(ExamProjectBo bo);

    /**
     * 校验并批量删除项目信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /*发布项目*/
    Boolean publishProject(Long id);

    /*预览项目*/
    PublicPaperVo queryViewById(Long id);

    /*取消发布项目*/
    Boolean cancelPublishProject(Long id);

    Boolean updateName(ExamProjectBo bo);
}
